package javase2.day07.demo05;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;

/*
需求：
    1.使用数组储存多个Person对象
    2.对数组中的元素使用Arrays的sort方法以年龄排序
 */
public class Demo01ArraysArgsLambda {
    public static void main(String[] args) {
        //1.使用数组储存多个Person对象
        Person[] arr={
                new Person("迪丽热巴",20),
                new Person("杨幂",24),
                new Person("赵今麦",18)
        };

        //2.对数组中的元素使用Arrays的sort方法以年龄排序(前减后：升序)
        //2.1匿名内部类：
        Arrays.sort(arr, new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                return o1.getAge()-o2.getAge();
            }
        });
        System.out.println(Arrays.toString(arr));

        //2.2Lambda表达式
        Arrays.sort(arr,(Person o1,Person o2)->{
            return o2.getAge()-o1.getAge();
        });
        System.out.println(Arrays.toString(arr));

        //Lambda表达式省略
        Arrays.sort(arr,(o1,o2)->o1.getAge()-o2.getAge());
        System.out.println(Arrays.toString(arr));

        /*
[Person{name='赵今麦', age='18'}, Person{name='迪丽热巴', age='20'}, Person{name='杨幂', age='24'}]
[Person{name='杨幂', age='24'}, Person{name='迪丽热巴', age='20'}, Person{name='赵今麦', age='18'}]
[Person{name='赵今麦', age='18'}, Person{name='迪丽热巴', age='20'}, Person{name='杨幂', age='24'}]
         */
    }
}
